package com.i2bt.view;

import android.app.Dialog;
import android.content.Context;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;

/**
 * 
 * Title : 基础对话框
 *
 * Description : 基础对话框类，使用xml文件自定义dialog，提供方便的事件监听  构造方法(
 *               int layoutId,String title,Context context, boolean cancelable)
 *
 * CreatedTime : 2014-8-8
 *
 * @author wuliao & kakaxi & yi
 *
 * @version 1.0
 *
 */
public class BaseDialog extends Dialog{
	private BaseDialog(Context context, boolean cancelable,
			OnCancelListener cancelListener) {
		super(context, cancelable, cancelListener);
	}
	/**
	 * 构造函数
	 * @param layoutId需要弹出的视图ID
	 * @param title对话框标题
	 * @param context上下文环境
	 * @param cancelable可否点击空白取消对话框
	 */
	public BaseDialog(int layoutId,String title,Context context, boolean cancelable){
		super(context, cancelable, null);
		this.setContentView(layoutId);
		this.setTitle(title);
	}
	/**
	 * 按返回键取消对话框（为cancelable为false而设置的）
	 */
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if(keyCode==KeyEvent.KEYCODE_BACK){
			this.cancel();
		}
		return false;
	}
	/**
	 * 给对话框中的视图设置点击监听
	 * @param viewId 对话框中要添加监听的ID
	 * @param onClickListener 点击监听
	 */
	public void setListener(int viewId,android.view.View.OnClickListener onClickListener){
		View v=this.findViewById(viewId);
		v.setOnClickListener((android.view.View.OnClickListener) onClickListener);
	}
	/**
	 * 获取对话框中的输入
	 * @param viewId对话框的editText的ID
	 * @return
	 */
	public String getText(int viewId){
		View v=this.findViewById(viewId);
		if(v.getClass().equals(EditText.class)){
			EditText edit=(EditText)v; 
			return edit.getText().toString();
		}
		else{
			throw new NullPointerException("不能获取非editText字符串"); 
		}
	}
}
